package com.zmn.oms.zmn.business.interfaces.redistribute;

import com.zmn.oms.common.exception.OmsBaseException;
import com.zmn.oms.model.bo.work.redistribute.OrderWorkRedistributeApplyBO;
import com.zmn.oms.model.bo.work.redistribute.OrderWorkRedistributeAuditBO;
import com.zmn.oms.model.bo.work.redistribute.OrderWorkRedistributeModifyBO;
import com.zmn.track.common.dto.apply.cancel.QueueApplyCancelDataDTO;

/**
 * 类描述:
 *
 * @author: HuangChao
 * @since: 2022/05/31 10:45
 */
public interface RedistributeApplyBService {
    /**
     * 改派申请操作
     */
    void redistributeApply(OrderWorkRedistributeApplyBO applyBO) throws OmsBaseException;

    /**
     * 系统改派申请
     */
    void autoRedistributeApply(OrderWorkRedistributeApplyBO applyBO) throws OmsBaseException;

    /**
     * 改派审核操作
     */
    void redistributeAudit(OrderWorkRedistributeAuditBO auditBO) throws OmsBaseException;


    /**
     * 改派领单操作
     */
    void redistributeTake(OrderWorkRedistributeModifyBO modifyBO) throws OmsBaseException;

    /**
     * 领单超时处理
     */
    void helpTakeTimeOut(OrderWorkRedistributeModifyBO modifyBO) throws OmsBaseException;

    /**
     * 取消申请影响处理
     *  目前只需针对发起做处理 后期有需求需做对对应调整
     * @param messageDto
     */
    void cancelApplyHandle(QueueApplyCancelDataDTO messageDto);
}
